Шаг 6. Сбрасываем коммиты с использованием смешанного режима

В этом шаге мы посмотрим, как работает опция --mixed — смешанный режим. Как мы уже говорили, это опция по умолчанию, её необязательно прописывать. Поэтому такие команды идентичны: git reset hash и git reset --mixed hash.

Выведем два последних коммита, используя команду git log --oneline -2.

Введена команда git log --oneline -2
Введена команда git log --oneline -2

Затем удалим коммит с хэшем 3eac92b. Для этого в команду git reset передадим хэш предыдущего коммита — 2dd37fe. Введём команду в Git Bash — git reset --mixed 2dd37fe.

Введена команда git reset --mixed 2dd37fe
Введена команда git reset --mixed 2dd37fe

После ввода команды указатель HEAD был сброшен до коммита с хэшем 2dd37fe. Проверим это, введём команду git log --oneline -2.

Введена команда git log --oneline -2
Введена команда git log --oneline -2

Теперь указатель HEAD находится на коммите с хэшем 2dd37fe. Но это ещё не всё.

Сейчас файл подсвечен жёлтым цветом, и рядом с ним установлена буква «M». Дело в том, что мы удалили только коммит, но изменения, которые в нём содержались, остались. Напомним, изменения удаляются вместе с коммитом только при опции --hard. Поэтому сейчас файл находится в статусе «Модифицированный». Для проверки напишем команду git status.

Введена команда git status
Введена команда git status

Файл помечен красный цветом, это означает, что он ещё не добавлен в индекс. Добавлять в индекс мы его не будем, просто отменим изменение с помощью команды git reset --hard.

Введена команда git reset --hard
Введена команда git reset --hard

Теперь index.html выглядит точно так же, как если бы мы не прописали git revert. Вы также можете повторно сделать фиксацию изменений, а не отменять их. Это уже зависит от того, что именно вам нужно.